home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************************************************
- 6/96 bob Updated #includes to support changed GX Library names.
-
- 1.0D2 ??? change transfer modes from gxXorMode to gxFastXorMode
- and change SetShapeCommonTransfer to SetShapeFastTransfer
-
- 1.0B3 ??? change GXGetGlyphOffsets to GXGetGlyphOffset
-
- ©1990 - 1996 Apple Computer, Inc.
- All rights reserved.
- ****************************************************************************************************/
-
- #include <Types.h>
- #include <QuickDraw.h>
- #include <Fonts.h>
- #include <Windows.h>
- #include <Menus.h>
- #include <SegLoad.h>
- #include <Memory.h>
- #include <Desk.h>
-
- #include <GXGraphics.h>
- #include "GraphicsLibraries.h"
- #include <GXEnvironment.h>
-
- #include <GXTypes.h>
- #define gxDefine_true_false_boolean
-
- #include <GXLayout.h>
- #include "LayoutLibrary.h"
- #include "LayoutFeatureConstants.h"
-
- #include "SampleInterface.h"
-
- short MyStrLen(char *x);
- static short MyStrLen(x)
- char *x;
- {
- short c = 0;
- while (*x++) c++;
- return c;
- } /* MyStrLen */
-
- void GetGlyphOffsetsExample(WindowPtr sampleWindow)
- {
- /* Variables */
- Boolean leadingEdge, wasRealCharacter;
- char *myString = "fish-flavored stenographer";
- gxByteOffset offset;
- gxPoint myPoint;
- gxRunFeature gxRunFeature[5];
- gxShape highlight, layout;
- short len, level = 0;
- gxStyle myStyle;
- gxViewPort aViewPort;
-
- /* Initialization */
-
- myPoint.x = ff(20);
- myPoint.y = ff(80);
-
- aViewPort = GXNewWindowViewPort(sampleWindow);
- SetDefaultViewPort(aViewPort);
-
- len = MyStrLen(myString);
-
- myStyle = NewLayoutStyle((char *) "\pHoefler Text Italic", ff(60), 0, nil, nil, 0, nil);
- gxRunFeature[0].featureType = ligatureType;
- gxRunFeature[0].featureSelector = ligatureRequiredOffSelector;
- gxRunFeature[1].featureType = ligatureType;
- gxRunFeature[1].featureSelector = ligatureCommonOffSelector;
- gxRunFeature[2].featureType = ligatureType;
- gxRunFeature[2].featureSelector = ligatureRareOffSelector;
- gxRunFeature[3].featureType = ligatureType;
- gxRunFeature[3].featureSelector = ligatureLogotypeOffSelector;
- gxRunFeature[4].featureType = ligatureType;
- gxRunFeature[4].featureSelector = ligatureRebusOffSelector;
- GXSetStyleRunFeatures(myStyle, 5, gxRunFeature);
-
- layout = GXNewLayout(
- 1, &len, (void *) &myString,
- 1, &len, &myStyle,
- 1, &len, &level,
- nil, &myPoint);
- GXDrawShape(layout);
- GXGetGlyphOffset(layout, 17, true, &offset, &leadingEdge, &wasRealCharacter);
- highlight = GXGetLayoutHighlight(layout, offset, offset + 1, gxHighlightAverageAngle, nil);
- /* changed to make this invert */
- SetShapeFastXorTransfer(highlight, NULL, NULL);
- GXDrawShape(highlight);
- GXDisposeShape(layout);
- GXDisposeShape(highlight);
-
- gxRunFeature[0].featureSelector = ligatureRequiredOnSelector;
- gxRunFeature[1].featureSelector = ligatureCommonOnSelector;
- GXSetStyleRunFeatures(myStyle, 5, gxRunFeature);
- myPoint.y += ff(75);
-
- layout = GXNewLayout(
- 1, &len, (void *) &myString,
- 1, &len, &myStyle,
- 1, &len, &level,
- nil, &myPoint);
- GXDrawShape(layout);
- GXGetGlyphOffset(layout, 17, true, &offset, &leadingEdge, &wasRealCharacter);
- highlight = GXGetLayoutHighlight(layout, offset, offset + 1, gxHighlightAverageAngle, nil);
- /* changed to make this invert */
- SetShapeFastXorTransfer(highlight, NULL, NULL);
- GXDrawShape(highlight);
- GXDisposeShape(layout);
- GXDisposeShape(highlight);
-
- gxRunFeature[2].featureSelector = ligatureRareOnSelector;
- GXSetStyleRunFeatures(myStyle, 5, gxRunFeature);
- myPoint.y += ff(75);
-
- layout = GXNewLayout(
- 1, &len, (void *) &myString,
- 1, &len, &myStyle,
- 1, &len, &level,
- nil, &myPoint);
- GXDrawShape(layout);
- GXGetGlyphOffset(layout, 17, true, &offset, &leadingEdge, &wasRealCharacter);
- highlight = GXGetLayoutHighlight(layout, offset, offset + 1, gxHighlightAverageAngle, nil);
- /* changed to make this invert */
- SetShapeFastXorTransfer(highlight, NULL, NULL);
- GXDrawShape(highlight);
- GXDisposeShape(layout);
- GXDisposeShape(highlight);
-
- GXDisposeViewPort(aViewPort);
- } /* main */
-